package _12_Object._03_HashCode;
/**
 * hashCode() 设计目的 : 是为了给每个对象生成一个唯一的标识符
 * 同一对象生成两次或多次值,结果都一样
 * 
 * 但是不同的对象,生成的值,也有可能相同,这就叫哈希冲突
 * 
 * hashCode 方法是根据 hash 算法得到一个唯一的值
 * 
 * hash 算法 : 是一种安全的加密算法,把不定长的值,改为定长的值,并不能保证唯一性
 * 
 * 其中算法包括 :
 * 1.直接寻址法
 * 2.数字分析法
 * 3.平方取中法
 * 4.随机数
 * 5.除法取余法
 * 
 * @author lenovo
 * @Date 2020年7月10日
 * @Time 下午9:29:53
 */
public class HashCode_01 {

	public static void main(String[] args) {
		HashCode_01 hc = new HashCode_01();
		int hash = hc.hashCode();
		// 把十进制的值转换为十六进制
		System.out.println(Integer.toHexString(hash));
		System.out.println(hc);

		System.out.println(new HashCode_01());
		System.out.println(new HashCode_01());
		System.out.println(new HashCode_01());

//		15db9742
//		_12_Object._03_HashCode.HashCode_01@15db9742
//		_12_Object._03_HashCode.HashCode_01@6d06d69c
//		_12_Object._03_HashCode.HashCode_01@7852e922
//		_12_Object._03_HashCode.HashCode_01@4e25154f

	}

	@Override
	public int hashCode() {
		// TODO Auto-generated method stub
		return super.hashCode();
	}
}
